package com.hyt.it.ogt.ks.service;

import com.hyt.it.ogt.ks.model.entity.MobileDeviceParam;
import com.hyt.it.ogt.ks.model.vo.monitor.response.CandidateExamStateVO;
import com.hyt.it.ogt.ks.model.vo.monitor.response.CandidateLoginVO;
import com.hyt.it.ogt.ks.model.vo.monitor.response.CandidateMonitorStartVO;
import com.hyt.it.ogt.ks.model.vo.monitor.response.CandidateValidPhoto;
import com.hyt.it.ogt.ks.model.vo.monitor.response.MonitorSignVO;

/**
 * @author 刘恒活
 * @since 2021/7/23 14:47
 */
public interface IMobileService {
    /**
     * 移动端登录
     *
     * @param code
     * @param examCode
     * @return
     */
    CandidateLoginVO login(String code, String examCode,Integer isScan);

    /**
     * 获取签名
     *
     * @param userId
     * @return
     */
    MonitorSignVO getSign(String examId, String userId);

    /**
     * 获取考生信息
     *
     * @param userId
     * @return
     */
    CandidateValidPhoto getCandidateInfo(String userId);

    /**
     * 照片对比
     *
     * @param userId
     * @param imageUrlA
     * @param imageUrlB
     * @param imageBase64
     * @return
     */
    boolean faceMatch(String examId, String userId, String imageUrlA, String imageUrlB, String imageBase64);

    /**
     * 照片对比
     *
     * @param userId
     * @param imageUrlA
     * @param imageUrlB
     * @param imageBase64
     * @return
     */
    boolean faceMatchForWX(String examId, String userId, String imageUrlA, String imageUrlB, String imageBase64);


    /**
     * 开始监控
     *
     * @param userId
     * @param examId
     * @return
     */
    CandidateMonitorStartVO startMonitor(String userId, String examId);

    /**
     * 上传考生移动设备信息，并返回PC端是否已经结束状态，通知app退出
     *
     * @param param
     * @return
     */
    CandidateExamStateVO getMonitorState(MobileDeviceParam param);

    /**
     * 获取考试当中的考生状态
     * @param examId
     * @param candidateId
     * @return
     */
    CandidateExamStateVO getAppMonitorStatus(String examId,String candidateId);
}
